package com.mjfeed.service;

import java.util.Set;

import com.mjfeed.entity.Admin;
import com.mjfeed.entity.Permission;
import com.mjfeed.entity.Role;
import com.mjfeed.util.Pagination;
import com.mjfeed.util.ParamBean;

/**
 * @description 后台管理员
 * @author zhaominglei
 * @date 2014年9月20日
 */
public interface AdminService extends BaseService {
	/**
	 * 根据用户名查找管理员
	 * @param username 用户名
	 */
	public Admin getAdminByUsername(String username);
	
	/**
	 * 获取当前登录管理员
	 * 
	 * @return 当前登录管理员,若不存在则返回null
	 */
	public Admin getCurrent();
	
	/**
	 * 获取所有管理员分页
	 */
	public Pagination<Admin> getPagination(ParamBean paramBean);
	
	/**
	 * 获取所有权限分页
	 */
	public Pagination<Permission> getPermissionPage(ParamBean paramBean);
	
	/**
	 * 获取所有角色分页
	 */
	public Pagination<Role> getRolePage(ParamBean paramBean);
	
	/**
	 * 获取管理员角色
	 * @param admin 管理员
	 */
	public Set<Role> getRoles(Admin admin);
	
	/**
	 * 获取管理员权限
	 * @param admin 管理员
	 */
	public Set<Permission> getPermissions(Admin admin);
	
	/**
	 * 判断用户名是否存在
	 * 
	 * @param username
	 *            用户名(忽略大小写)
	 * @return 用户名是否存在
	 */
	public boolean usernameExists(String username);
}
